<!doctype html>
<html>

<head>
    <title>Socket.IO chat</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font: 13px Helvetica, Arial;
        }
        
        form {
            background: #000;
            padding: 3px;
            position: fixed;
            bottom: 0;
            width: 100%;
        }
        
        form input {
            border: 0;
            padding: 10px;
            width: 90%;
            margin-right: .5%;
        }
        
        form button {
            width: 9%;
            background: rgb(130, 224, 255);
            border: none;
            padding: 10px;
        }
        
        #messages {
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
        
        #messages li {
            padding: 5px 10px;
        }
        
        #messages li:nth-child(odd) {
            background: #eee;
        }
    </style>
</head>

<body>
    <ul id="messages"></ul>
    <form action="">
        <input id="m" autocomplete="off" /><button>Send</button>
    </form>

    <script src="/socket.io/socket.io.js"></script>
    <script src="https://code.jquery.com/jquery-1.11.1.js"></script>
    <script>
        $(function() {
            var socket = io();
            $('form').on('submit', (e) => {
                    //阻止表单提交，表单提交会刷新页面
                    e.preventDefault()
                        //客户端向服务器端发消息
                        //通过触发服务器端绑定的事件来传递数据
                        //socket.emit（,）
                    socket.emit('onserver', $('#m').val())
                        //清空发消息的文本框内容
                    $('#m').val('')
                })
                //接收服务器发送的消息
            socket.on('onclient', (message) => {
                $('#messages').append($('<li>').text(message))
            })
        })
    </script>

</body>

</html>